The present invention is directed to detection and recovery from problems that cause operational failures in computers, and in one particular embodiment to a system that permits a computer to boot despite the presence of a software problem that could otherwise cause a startup failure.
When a computer is first started, it proceeds through certain startup stages which check for particular types of errors. If no errors are detected, the computer loads an operating system into its main memory and carries out other tasks associated with initial startup. If, however, an error is detected during the startup stages, further procedures are interrupted and the computer may display a warning to the user, to provide an indication of the detected error For example, if an operating system file is not stored at an expected location, the computer may display the message xe2x80x9cUnable To Find System Folder.xe2x80x9d
For sophisticated computer users, the steps necessary to correct for many types of errors that cause startup failures may be readily apparent. For example, if the system folder cannot be located, an experienced user may realize that an emergency disk containing the system folder needs to be located and inserted in a disk drive, or a file needs to be moved from one location to another. A novice user, however, may not understand the error message, and therefore not know how to recover from the error condition. In either case, the user is faced with a computer that doesn""t work, and may spend a significant amount of time and effort attempting to overcome the problem that caused the failure.
In the past, some efforts have been made to overcome certain types of errors that interfere with proper operation of the computer. For example, some computers are constructed with hardware fault-tolerant systems. In these types of systems, certain faults which might otherwise cause a failure can be overcome or circumvented. While this approach has utility in certain circumstances, it is not generally applicable to all types of computers. Rather, the fault tolerance must be specifically designed for each different type of computer. In addition, this approach does not offer the capability to correct software-related problems, which are the more common source of operational failures in general purpose computers.
Other approaches to this problem have employed software stored within the computer system that attempts to identify and fix certain types of file system errors.
Some of these approaches are user-invoked, rather than being automatic, and therefore not likely to be used by novice users. In addition, they are specific to the particular system on which they are stored, rather than being generally applicable to all types of computers.
Accordingly, it is desirable to provide a system for recovering from software errors that has general applicability to any type of computer system and requires only minimal system resources.
In accordance with the present invention, the foregoing objective is achieved by means of a user-hidden secondary volume or partition in the computer permanent storage mechanism, e.g., hard disk. If an error is detected which would normally result in an operational failure, the computer branches to recovery software stored in the secondary volume. For example, in the case of startup errors, the recovery software can include an alternate startup application which enables the computer to be booted. In one embodiment, the startup application installs a minimal operating system on the primary volume and then restarts the computer. Due to the presence of the minimal operating system installed in the primary volume, the computer is able to start. As a result, the user is not left with a non-functioning computer.
As further features of the invention, the recovery software can attempt to automatically fix the detected problem, or it can suggest possible steps to be taken by the user, in order to fix the problem that resulted in the initial failure.
Since the error detection and recovery system of the present invention is software-based, and does not rely upon specialized hardware, it has general applicability to any type of computer system. Furthermore, it requires only the use of minimal system resources to operate. It provides the user with an automatic recovery from software problems, rather than simply detecting a startup problem and informing the user. Thus, the user does not need to have any familiarity with the operation of a computer in order to overcome problems, and does not have to pursue manual procedures to fix a problem in order to make the computer operate.
Further features and advantages of the invention are explained hereinafter with reference to preferred embodiments illustrated in the accompanying drawings.